Addressable AssetとAutoya/AssetBundleモジュールの比較


概要

材料揃ったんで書く。

先に書いておくと、Addressable AssetはC#で書かれたモジュール、

Autiya/AssetBundleモジュールもC#で書かれたものなので、

どちらもコードをいじることで機能の追加や削除が可能になっている。


ここでは、デフォルトを比較する。



Addressableを生成してAssetに対するアンカーとして使う

Addressableにしかない。



AssetBundleの情報の集合をリストとして扱う

双方OK

リストのダウンロード -> 使いたいAssetを含んでいるAssetBundleを見つけてDL、キャッシュして展開、、など。



複数のAssetBundleリストを使う

Autoyaでは複数のリストを同時に扱うことができる。


機能リクエストはしておいたので、Addressableでも叶うかも。



アプリケーション動作中にAssetBundleのリストを更新する

AutoyaではAppの動作中に、サーバから新バージョンのAssetBundleリストを取得、更新することができる。

現在使用中のAssetを含んだAssetBundleが更新されたかどうか、などもサーバ主導でハンドリングを行える。


Addressableでは、起動時に一回だけリストを更新することができる。



AssetBundleのPreload

Preloadは、AssetBundleを展開することなく、DLだけを行う処理。

双方OK



Preloadの並列化

複数のPreloadを並列に行えるかどうか。

Autoyaでは並列数を指定して実行できる。


機能リクエストはしておいたので、Addressableでも叶うかも。



バージョンの付与

Autoyaではリリース済みのAssetBundleに対して、そのリストに特定のバージョン値をセットすることができる。

これで、例えばクライアントが今どんなバージョンのAssetを触っているか、とかが把握できる。


エラー処理

Autoyaでは、iOS/Androidなどのモバイルでの通信エラーやら何やらをメチャクチャ丁寧にハンドリングしている。

Addressableはデフォルトではそういうのなさそう(カスタマイズ前提)っぽいので、この辺は頑張って欲しい。



補足

Addressable Asset系のすごいところは、

・上記の機能は標準では入ってないけど、リスト作成(Addressableコンパイル) -> 起動時リスト取得 -> Assetの指定をAddressable Assetで行う

というフローが整っているところ。


特にフローの整理っぷりは素晴らしい。

いままではフローを実装するところから始めていたのが、このフローのどこに何載せよう、みたいな感じに簡略化できる。


Autoya/AssetBundleモジュールとほとんど同じフローなのも、俺的には良い。


もしこれが完成したら、自分はAutoya側のAssetBundleの機構をメンテしなくてよくなるのだ!!